assert_that(p.cargo_process("test").arg("--doc").arg("-v"),
execs().with_status(0));
}
+
+#[test]
+fn test_can_test_example() {
+ let p = project("foo")
+ .file("Cargo.toml", r#"
+ [project]
+ name = "foo"
+ version = "0.1.0"
+ "#)
+ .file("examples/ex.rs", r#"
+ fn main() {}
+ #[test] fn kaboom() { panic("KABOOM!") }
+ "#);
+ let _ = p;
+// FIXME: does not work
+// assert_that(p.cargo_process("test").arg("--example").arg("ex"),
+// execs().with_status(101).with_stdout_contains("KABOOM!"))
+
+}
+
+#[test]
+fn test_many_targets() {
+ let p = project("foo")
+ .file("Cargo.toml", r#"
+ [project]
+ name = "foo"
+ version = "0.1.0"
+ "#)
+ .file("src/bin/a.rs", r#"
+ fn main() {}
+ #[test] fn bin_a() {}
+ "#)
+ .file("src/bin/b.rs", r#"
+ fn main() {}
+ #[test] fn bin_b() {}
+ "#)
+ .file("src/bin/c.rs", r#"
+ fn main() {}
+ #[test] fn bin_c() { panic!(); }
+ "#)
+ .file("examples/a.rs", r#"
+ fn main() {}
+ #[test] fn example_a() {}
+ "#)
+ .file("examples/b.rs", r#"
+ fn main() {}
+ #[test] fn example_b() {}
+ "#)
+ .file("examples/c.rs", r#"
+ #[test] fn example_c() { panic!(); }
+ "#)
+ .file("tests/a.rs", r#"
+ #[test] fn test_a() {}
+ "#)
+ .file("tests/b.rs", r#"
+ #[test] fn test_b() {}
+ "#)
+ .file("tests/c.rs", r#"
+ #[test] fn test_c() { panic!(); }
+ "#);
+
+ assert_that(p.cargo_process("test")
+ .arg("--bin").arg("a").arg("--bin").arg("b")
+ .arg("--example").arg("a").arg("--example").arg("b")
+ .arg("--test").arg("a").arg("--test").arg("b"),
+ execs()
+ .with_status(0)
+ .with_stdout_contains("test bin_a ... ok")
+ .with_stdout_contains("test bin_b ... ok")
+ .with_stdout_contains("test test_a ... ok")
+ .with_stdout_contains("test test_b ... ok")
+// FIXME: does not work
+// .with_stdout_contains("test example_a ... ok")
+// .with_stdout_contains("test example_b ... ok")
+ )
+}